package com.ddogring.business.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;


/**
 * @BelongsProject: eshop
 * @BelongsPackage: com.ddogring.business.domain
 * @Author: DdogRing
 * @CreateTime: 2023-01-30  09:52
 * @Description: TODO
 * @Version: 1.0
 */
@Data
@TableName(value = "t_user")
public class User {

    /** 主键 */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /** 用户名 */
    @NotNull(message = "用户名不能为空")
    @NotBlank(message = "用户名不能为空")
    private String username;

    /** 密码 */
    @NotNull(message = "密码不能为空")
    @NotBlank(message = "密码不能为空")
    @Pattern(regexp = "(?![0-9A-Z]+$)(?![0-9a-z]+$)(?![a-zA-Z]+$)[0-9A-Za-z~!@#$%^&*()_\\-+=<>?:{}|,.\\/;'\\[\\]·~！@#￥%……&*（）——\\-+={}|《》？：“”【】、；‘'，。、]{6,18}$", message = "必须包含数字、大小写字母，且至少六位")
    private String password;

    /** 电子邮箱 */
    private String email;

    /** 手机号 */
    /*@NotNull(message = "手机号码不能为空")
    @NotBlank(message = "手机号码不能为空")
    @Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$",
            message = "手机号格式有误")*/
    private String phone;

    /** 昵称 */
    private String nickname;

    /** 余额 */
    private BigDecimal balance;

    /** 删除标识（0未删除 1已删除） */
    @TableLogic(value = "0", delval = "1")
    @TableField(fill = FieldFill.INSERT)
    private Integer delFlag;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 修改时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
}
